import 'dart:convert';
import 'dart:io';

main() async {
  var result = await getDataFromZhihuAPI();
  print(result);
}

/**
 * 系统内置库实现请求数据HttpClient
 *
 * async和await关键字：
 * async——让方法变成异步
 * await——等待异步方法执行完成
 */
getDataFromZhihuAPI() async {
  // 1、创建HttpClient对象
  var httpClient = new HttpClient();
  // 2、创建uri对象
  var uri = new Uri.http("news-at.zhihu.com", "/api/3/stories/latest");
  // 3、发起请求，等待请求
  var request = await httpClient.getUrl(uri);
  // 4、关闭请求，等待响应
  var response = await request.close();
  // 5、解码响应内容
  return await response.transform(utf8.decoder).join();
}
